There are various known techniques for measuring the bandwidth capacity of a channel between two communication end-points, such as a channel established between two user terminals over a communication network such as the Internet (the bandwidth capacity being the available bandwidth, i.e. the bandwidth the channel is able to offer the transmitting terminal). For instance, existing examples of techniques for measuring bandwidth capacity include packet pair probing, packet train probing, and Kalman filter based estimation.
It is also known to select the encoded bandwidth of an encoded bitstream in dependence on the bandwidth capacity of the channel over which that bitstream is to be sent (the encoded bandwidth being the bandwidth incurred by transmitting the encoded bitstream over the channel, i.e. the bitrate of the encoded stream). For example this could be used to select the encoded bitrate of a real-time audio or video stream, such as a live voice and/or video call being conducted over the Internet (a VoIP call—Voice and/or Video over Internet Protocol). The skilled person is aware of various ways in which the encoding of a bitstream such as an audio or video stream can be adjusted so as to control the bandwidth it incurs, e.g. by adjusting the resolution, adjusting the quantization granularity, adjusting the number of intra-frame encoded frames (key frames) relative to the number of inter-frame encoded frames, changing the inter and/or intra frame block prediction mode, adjusting the amount of redundant error protection information included in the stream, etc.
In order to select what value of bandwidth (incurred bitrate) to encode with, one method is to collect a history of past bandwidth capacity measurements experienced over a channel, then determine a probability density function (PDF) of the history, and take the bandwidth at a certain predetermined percentile of the PDF in order to give the bandwidth (bitrate) with which to encode the outgoing bitstream. However in this case, while the encoded bandwidth may adapt as the history is updated, this encoded bandwidth is nonetheless always the bandwidth at a fixed percentile that has been predetermined (always the Nth percentile where N is constant), and there is no greater flexibility to adapt the encoded bitrate above or below this percentile even if current instantaneous conditions would warrant it.
An alternative method is to have the encoded bitrate track an instantaneous estimate of the bandwidth currently experienced over the channel. This way the encoded bandwidth can dynamically adapt to current conditions.